package br.com.SGF.bean;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.SGF.dao.CidadeDAO;
import br.com.SGF.domain.CidadeDomain;
import br.com.SGF.util.JSFUtil;

@SuppressWarnings("serial")
@ManagedBean(name = "MBCidade")
@ViewScoped
public class CidadeBean implements Serializable {

	private List<CidadeDomain> listaCidade;
	
	//incluir,salvar e editar
	private CidadeDomain cidadeDomain;
	private List<CidadeDomain> cidadeFiltrada;
	private List<CidadeDomain> cidade;


	
	
	
	public List<CidadeDomain> getListaCidade() {
		return listaCidade;
	}
	public void setListaCidade(List<CidadeDomain> listaCidade) {
		this.listaCidade = listaCidade;
	}
	public List<CidadeDomain> getClienteFiltrados() {
		return cidadeFiltrada;
	}
	public void setClienteFiltrados(List<CidadeDomain> cidadeFiltrada) {
		this.cidadeFiltrada = cidadeFiltrada;
	}
	public CidadeDomain getCidadeDomain() {
		return cidadeDomain;
	}
	public void setCidadeDomain(CidadeDomain cidadeDomain) {
		this.cidadeDomain = cidadeDomain;
	}
	
	public List<CidadeDomain> getCidade() {
		return cidade;
	}
	public void setCidade(List<CidadeDomain> cidade) {
		this.cidade = cidade;
	}

	
	
	
	public void carregarCidade() {
		try {
			CidadeDAO cidadeDao = new CidadeDAO();
			cidade = cidadeDao.listarCidade();
		} catch (RuntimeException ex) {
			ex.printStackTrace();
			JSFUtil.adicionarMensagemErro(ex.getMessage());

		}
	}

	public void prepararNovo() {

		cidadeDomain = new CidadeDomain();
	}

		public void novo(){
			try{
			CidadeDAO cidDAO = new CidadeDAO();
			cidadeDomain = cidDAO.salvarCidade(cidadeDomain);
			JSFUtil.adicionarMensagemSucesso("Cidade Salva com Sucesso");
		}catch (RuntimeException ex) {
			ex.printStackTrace();
			JSFUtil.adicionarMensagemErro(ex.getMessage());
			}
		}
		public void excluirCidade() {
			try {
				CidadeDAO cidadeDao = new CidadeDAO();
				cidadeDao.excluirCidade(cidadeDomain);
			    
				cidade = cidadeDao.listarCidade();

				JSFUtil.adicionarMensagemSucesso("Cidade excluida com sucesso!");

			} catch (RuntimeException ex) {
				ex.printStackTrace();
				JSFUtil.adicionarMensagemErro(ex.getMessage());
			}
		
			
				
			}
		
		public void prepararEditar(){
			try{
				CidadeDAO cidDao = new CidadeDAO();
				
				listaCidade = cidDao.listarCidade();
			}catch(RuntimeException ex){
				ex.printStackTrace();
				JSFUtil.adicionarMensagemErro(ex.getMessage());
			}
		}
		public void editarCidade(){
			
		try{
			CidadeDAO cidadeDao = new CidadeDAO();
			cidadeDao.editarCidade(cidadeDomain);
			cidade = cidadeDao.listarCidade();
		}catch (RuntimeException ex) {
			ex.printStackTrace();
			JSFUtil.adicionarMensagemErro(ex.getMessage());
			}
		}
}

	
